SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDMOVI_BANC_I02]                
/*-------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                --*/        
/*---Cliente              : OFISIS                 --*/                
/*---Sistema              : Tesoreria                  --*/        
/*---Mödulo               : Empresa                    --*/        
/*---Programa             : Grabaciön Detalle          --*/        
/*---                       Movimiento Bancos          --*/        
/*---                       (Egresos)                  --*/        
/*---Script               : tdbanc_p.sql               --*/        
/*---Nombre SP            : SP_TDMOVI_BANC_I03         --*/        
/*---Desarrollado por     : Javier Flores A.           --*/        
/*---Fecha Creaciön       : 18/06/1999                 --*/        
/*---Base Datos           : Microsoft Sql Server       --*/        
/*---Versiön              : 7.0                        --*/        
/*---Invoca a SP          :                            --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 1 por     : Eduardo Vivar Pomiano      --*/        
/*---Fecha Modificaciön   : 03/04/2001                 --*/        
/*---Detalle Modificaciön : Permite grabar docs Clientes en EGRESOS--*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 2 por     : Carlos Marquez Escobar     --*/        
/*---Fecha Modificaciön   : 25/08/2004                 --*/        
/*---Detalle Modificaciön : Cod Operac y Unidades Cont en Retencio.--*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 3 por     : Reynaldo Menacho           --*/        
/*---Fecha Modificaciön   : 22/04/2005                 --*/        
/*---Detalle Modificaciön : Busqueda del estado actual o anterior    --*/        
/*---      de los documentos             --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 4 por     : Carlos Marquez Escobar     --*/        
/*---Fecha Modificaciön   : 24/01/2005                 --*/        
/*---Detalle Modificaciön : Grabar Imp. Reten. en la Mon Factura Detalle--*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Comentarios                                       --*/        
/*---                                                  --*/        
/*---                                                  --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Drop Proc SP_TDMOVI_BANC_I01                      --*/        
/*---Grant Execute on SP_TDMOVI_BANC_I01 to public     --*/        
/*---SP_TDMOVI_BANC_I01                                --*/        
/*-------------------------------------------------------*/        
      
 @ISCO_EMPR     TD_VC_002,                 
 @ISCO_USUA_MODI TD_VC_008_USUA,                
 @ISCO_BANC     TD_VC_003,                 
 @ISNU_CNTA_BANC TD_VC_020,                
 @ISAA_BNCO   TD_VC_004,                 
 @ISMM_BNCO   TD_VC_002,                 
 @ISTI_MOVI_BANC TD_VC_001,                  
 @ISNU_COMP_BANC TD_VC_008,                 
 @INNU_SECU   TD_IN_001,                
 @ISTI_ENTI   TD_VC_001,                 
 @ISCO_ENTI   TD_VC_020,                
 @ISTI_DOCU_ENTI TD_VC_003,                
 @ISNU_DOCU_ENTI TD_VC_020,                
 @ISCO_MONE_DOCU TD_VC_003,                
 @IDFE_DOCU   TD_DT_001,                
 @IDFE_EMIS   TD_DT_001,                
 @IDFE_PROG   TD_DT_001,                
 @INIM_DOCU   TD_NU_016_004,                
 @INIM_SALD_DOCU TD_NU_016_004,                
 @INIM_DETA   TD_NU_016_004,                 
 @ISDE_OBSE   TD_VC_100,                
 @ISST_CIER_DOCU TD_VC_001_SINO,                
 @ISTI_DOCU   TD_VC_003,                
 @INFA_TIPO_CAMB TD_NU_015_006,                
 @ISCO_MONE   TD_VC_003,                  
 @INIM_SALD_CONV TD_NU_016_004,                
 @INIM_DETA_NEGA TD_NU_016_004,                
 @ISNU_CORR_COMP TD_VC_020,                
 @ISTI_MOVI_OPER TD_VC_001,                
 @ISCO_CNTA_EMPR TD_VC_020,                
 @ISCO_ORDE_SERV TD_VC_020,                
 @INNU_SECU_PRPA TD_IN_001,      
 @ISCO_UNID_CNTB TD_VC_003,      
 @INFA_CAMB_EXTR TD_NU_015_006      
      
 As        
Declare                 
    @VNNU_SECU TD_IN_001,     @VNIM_MOVI_ANTE  TD_NU_016_004,  @VNIM_TOTA TD_NU_016_004,                
    @VNIM_CONV_ANTE TD_NU_016_004,   @VNNU_REGI TD_IN_001,    @VSST_SIGN TD_VC_001,                
    @VNIM_TOTA_CLIE TD_NU_016_004, @VNIM_TOTA_PROV  TD_NU_016_004, @VNIM_CONV_DOCU TD_NU_016_004,                
    @VSCO_MONE_NACI TD_VC_003, @VSCO_MONE_EXTR TD_VC_003       , @VSCO_TIPO_EGRE  TD_VC_003,                
    @VSCO_UNID_CONC TD_VC_003,                
    @VSCO_ESTA_LETR   TD_VC_003, @VSTI_DOCU_RETE   TD_VC_003,                 
    @VSNO_ENTI TD_VC_100, @VSNU_RUCC TD_VC_020,                 
    @VSNU_CHEQ TD_VC_020, @VSNU_DOCU_BANC TD_VC_020,                
    @VSNU_COMP_BACA TD_VC_020,                 
    @VNIM_TOTA_DIST TD_NU_016_004, @VSTI_CAMB TD_VC_001, @VSTI_ORIG TD_VC_001, @VDFE_OPER TD_DT_001,                
    @VSCO_COND_CONT TD_VC_003, @VSNU_SERI TD_VC_008, @VSST_APRO_CXPA TD_VC_001, @VNNU_CONT TD_IN_001,            
    @VSCO_ESTA_ORIG TD_VC_001              
        
 Begin Tran SP_TDMOVI_BANC_I01                
                
 Select @VSCO_MONE_NACI = CO_MONE_DEFA,                
   @VSCO_MONE_EXTR = CO_MONE_EXTR,                
   @VSCO_COND_CONT = CO_COND_CONT,                
   @VSCO_TIPO_EGRE = CO_TIPO_OPEG,  ---- Egreso o Cargo                
   @VSST_APRO_CXPA = ST_APRO_CXPA                
 From TMPARA_TESO                
 Where CO_EMPR = @ISCO_EMPR                
         
 -- Documento Retencion ---        
 Select @VSTI_DOCU_RETE = TI_DOCU                
 From TTDOCU_CNTB                
 Where ST_DOCU_0021 = 'S'                
         
 If Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''            
 -- Se busca el estado actual del documento            
 Exec SP_TTESTA_ORIG_Q02 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI, @VSCO_ESTA_ORIG output            
         
 If @ISCO_MONE_DOCU != @ISCO_MONE                
 Begin                
  Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG                
  From TTFACA_OPCI                
  Where CO_EMPR = @ISCO_EMPR                
  And CO_MODU = 'TEEM0001'                
  And CO_MENU = 'FTEEMAI'                
          
  If ( @VSTI_CAMB Is Null Or @VSTI_ORIG Is Null )                
   Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG                
   From TMPARA_TESO                
   Where CO_EMPR = @ISCO_EMPR                
         
  Select @VDFE_OPER = FE_OPER,                
    @VSCO_UNID_CONC = CO_UNID_CONC                
  From   TCMOVI_BANC                
  Where  CO_EMPR = @ISCO_EMPR                 
  and    CO_UNID_CONC = @ISCO_UNID_CNTB      
  and    CO_BANC = @ISCO_BANC                 
  and    NU_CNTA_BANC = @ISNU_CNTA_BANC                  
  and    AA_BNCO = @ISAA_BNCO                
  and    MM_BNCO = @ISMM_BNCO                 
  and    TI_MOVI_BANC = @ISTI_MOVI_BANC                
  and    NU_COMP_BANC = @ISNU_COMP_BANC                 
         
  Select @VNIM_CONV_DOCU = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q05(@ISCO_MONE, @ISCO_MONE_DOCU,                 
  @VDFE_OPER, @INIM_DETA, @VSTI_CAMB, @VSTI_ORIG, 'N', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB))                
         
  Select @VNIM_CONV_DOCU = Round(@VNIM_CONV_DOCU, 2)                
 End                
 Else   
 Begin                
  Select @VSCO_UNID_CONC = CO_UNID_CONC                
  From   TCMOVI_BANC                
  Where  CO_EMPR = @ISCO_EMPR      
  and    CO_UNID_CONC = @ISCO_UNID_CNTB      
  and    CO_BANC = @ISCO_BANC                 
  and    NU_CNTA_BANC = @ISNU_CNTA_BANC                  
  and    AA_BNCO = @ISAA_BNCO                
  and    MM_BNCO = @ISMM_BNCO                 
  and    TI_MOVI_BANC = @ISTI_MOVI_BANC                
  and    NU_COMP_BANC = @ISNU_COMP_BANC                 
          
  Select @VNIM_CONV_DOCU = @INIM_DETA                        
         
 End                
         
 If @INNU_SECU IS NULL                
 Begin              Select @VNNU_SECU   = NU_SECU                
  From   TDMOVI_BANC                
  Where  CO_EMPR = @ISCO_EMPR                
  and    CO_UNID_CONC = @ISCO_UNID_CNTB      
  and    CO_BANC = @ISCO_BANC                
  and    NU_CNTA_BANC = @ISNU_CNTA_BANC                
  and    AA_BNCO = @ISAA_BNCO                
  and    MM_BNCO = @ISMM_BNCO           
  and    TI_MOVI_BANC = @ISTI_MOVI_BANC                
  and    NU_COMP_BANC = @ISNU_COMP_BANC                
         
  If @VNNU_SECU > 0                
   Select @VNNU_SECU = @VNNU_SECU + 1                
  Else                
   Select @VNNU_SECU = 1                   
         
  Select @VNNU_CONT = IsNull(Count (CO_EMPR),0) From #TWRETE_BANC              
         
  IF @ISTI_DOCU_ENTI = @VSTI_DOCU_RETE And @VNNU_CONT != 0              
  Begin                
   Select @VSNU_SERI = Substring(@ISNU_DOCU_ENTI, 1, Patindex('%-%', @ISNU_DOCU_ENTI)-1)                 
   /* Genero el œltimo correlativo para el documento comp. de retenci½n */                
   Exec SP_TTULTI_CORR_I01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISTI_DOCU_ENTI, @VSNU_SERI, @ISNU_DOCU_ENTI OUTPUT                
  End                
         
  Insert into TDMOVI_BANC (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC,                
  NU_COMP_BANC, NU_SECU, TI_ENTI, CO_ENTI, TI_DOCU_ENTI, NU_DOCU_ENTI, CO_MONE_DOCU, FE_EMIS,             
  FE_DOCU, FE_PROG, IM_DOCU, IM_SALD_DOCU, IM_DETA, IM_CONV_DOCU, DE_OBSE, ST_CIER_DOCU,             
  IM_DETA_NEGA, IM_SALD_CONV, NU_CORR_COMP, TI_MOVI_OPER, CO_CNTA_EMPR, CO_ORDE_SERV,             
  NU_SECU_PRPA, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC, FA_CAMB_EXTR)      
  Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC,                
  @ISNU_COMP_BANC, @VNNU_SECU, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI, @ISCO_MONE_DOCU,               
  @IDFE_EMIS, @IDFE_DOCU, @IDFE_PROG, @INIM_DOCU, @INIM_SALD_DOCU, @INIM_DETA, @VNIM_CONV_DOCU,                 
  @ISDE_OBSE, @ISST_CIER_DOCU, @INIM_DETA_NEGA , @INIM_SALD_CONV, @ISNU_CORR_COMP, @ISTI_MOVI_OPER,             
  @ISCO_CNTA_EMPR, @ISCO_ORDE_SERV, @INNU_SECU_PRPA, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(),   
  @ISCO_UNID_CNTB, @INFA_CAMB_EXTR)      
     
        
  If @@error <> 0                
  Begin                
   Rollback Tran SP_TDMOVI_BANC_I01        
   Return        
  End                    
         
  If @VSST_APRO_CXPA = 'S'                
  Begin            
   Update TDPROG_PAGO                
   Set   TI_SITU = 'PAG',          
   CO_USUA_MODI = @ISCO_USUA_MODI,               
   FE_USUA_MODI = Getdate()                       
   Where CO_EMPR     = @ISCO_EMPR                
   And  CO_PROV      = @ISCO_ENTI                
   And  CO_TIPO_DOCU = @ISTI_DOCU_ENTI                
   And  NU_DOCU_PROV = @ISNU_DOCU_ENTI                
   And  NU_SECU      = @INNU_SECU_PRPA                
           
   If @@error <> 0                
   Begin                
    Rollback Tran SP_TDMOVI_BANC_I01                
    Return                
   End                    
  End            
         
  If @ISST_CIER_DOCU = 'S' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''            
  Begin            
   --Se cancela el documento y se graba en tabla de kardex de estados de documentos     
   Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,             
   @VNIM_CONV_DOCU, 'PAG', @ISCO_USUA_MODI, @ISST_CIER_DOCU            
           
   If @@error <> 0              
   Begin              
    Rollback Tran SP_TDMOVI_BANC_I01             
    Return              
   End                  
  End            
  Else             
   If @ISST_CIER_DOCU = 'N' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''            
   Begin            
    --Se cancela el documento y se graba en tabla de kardex de estados de documentos            
    Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,             
    @VNIM_CONV_DOCU, @VSCO_ESTA_ORIG, @ISCO_USUA_MODI, @ISST_CIER_DOCU            
            
    If @@error <> 0              
    Begin              
     Rollback Tran SP_TDMOVI_BANC_I01             
     Return              
    End                  
   End             
  End                
 Else                 
 Begin                
  Select @VNIM_CONV_ANTE = Isnull(IM_CONV_DOCU,0)                
  From  TDMOVI_BANC                 
  Where CO_EMPR = @ISCO_EMPR                
  And   CO_UNID_CONC = @ISCO_UNID_CNTB      
  And   CO_BANC = @ISCO_BANC                
  And   NU_CNTA_BANC = @ISNU_CNTA_BANC            
  And   AA_BNCO = @ISAA_BNCO                
  And   MM_BNCO = @ISMM_BNCO                
  And   TI_MOVI_BANC = @ISTI_MOVI_BANC                
  And   NU_COMP_BANC = @ISNU_COMP_BANC                
  And   NU_SECU = @INNU_SECU                 
         
  IF RTRIM(ISNULL(@ISCO_CNTA_EMPR, '')) = ''              
   Update TDMOVI_BANC               
   Set IM_DETA = @INIM_DETA,              
   IM_CONV_DOCU = @VNIM_CONV_DOCU,             
   DE_OBSE = @ISDE_OBSE,              
   ST_CIER_DOCU = @ISST_CIER_DOCU,              
   IM_DETA_NEGA = @INIM_DETA_NEGA,              
   FE_USUA_MODI = getdate(),              
   CO_USUA_MODI = @ISCO_USUA_MODI              
   Where CO_EMPR = @ISCO_EMPR              
   and   CO_UNID_CONC = @ISCO_UNID_CNTB      
   And   CO_BANC = @ISCO_BANC              
   And   NU_CNTA_BANC = @ISNU_CNTA_BANC              
   And   AA_BNCO = @ISAA_BNCO              
   And   MM_BNCO = @ISMM_BNCO              
   And   TI_MOVI_BANC = @ISTI_MOVI_BANC              
   And   NU_COMP_BANC = @ISNU_COMP_BANC              
   And   NU_SECU = @INNU_SECU              
  ELSE              
   Update TDMOVI_BANC               
   Set TI_MOVI_OPER = @ISTI_MOVI_OPER,              
   CO_CNTA_EMPR = @ISCO_CNTA_EMPR,              
   TI_ENTI = @ISTI_ENTI,              
   CO_ENTI = @ISCO_ENTI,              
   CO_ORDE_SERV = @ISCO_ORDE_SERV,             
   IM_DETA = @INIM_DETA,              
   IM_CONV_DOCU = @VNIM_CONV_DOCU,                            
   DE_OBSE = @ISDE_OBSE,              
   ST_CIER_DOCU = @ISST_CIER_DOCU,              
   IM_DETA_NEGA = @INIM_DETA_NEGA,              
   FE_USUA_MODI = getdate(),              
   CO_USUA_MODI = @ISCO_USUA_MODI              
   Where CO_EMPR = @ISCO_EMPR              
   And   CO_UNID_CONC = @ISCO_UNID_CNTB      
   And   CO_BANC = @ISCO_BANC              
   And   NU_CNTA_BANC = @ISNU_CNTA_BANC              
   And   AA_BNCO = @ISAA_BNCO              
   And   MM_BNCO = @ISMM_BNCO              
   And   TI_MOVI_BANC = @ISTI_MOVI_BANC              
   And   NU_COMP_BANC = @ISNU_COMP_BANC              
   And   NU_SECU = @INNU_SECU              
         
  If @@error <> 0                
  Begin                
   Rollback Tran SP_TDMOVI_BANC_I01                
   Return                
  End                    
         
  Select @VNIM_CONV_DOCU = @VNIM_CONV_DOCU - @VNIM_CONV_ANTE            
          
  If @ISST_CIER_DOCU = 'S' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''            
  Begin            
   --Se cancela el documento y se graba en tabla de kardex de estados de documentos            
   Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,             
   @VNIM_CONV_DOCU, 'PAG', @ISCO_USUA_MODI, @ISST_CIER_DOCU            
           
   If @@error <> 0              
   Begin              
   Rollback Tran SP_TDMOVI_BANC_I01             
   Return              
   End                  
  End            
  Else             
  If @ISST_CIER_DOCU = 'N' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''            
  Begin            
   --Se cancela el documento y se graba en tabla de kardex de estados de documentos            
   Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,             
   @VNIM_CONV_DOCU, @VSCO_ESTA_ORIG, @ISCO_USUA_MODI, @ISST_CIER_DOCU            
           
   If @@error <> 0              
   Begin              
    Rollback Tran SP_TDMOVI_BANC_I01             
    Return              
   End                  
  End            
         
 End                
         
 Select @VNIM_MOVI_ANTE  = Isnull(IM_MOVI,0)                 
 From   TCMOVI_BANC                
 Where  CO_EMPR = @ISCO_EMPR                 
 and    CO_UNID_CONC = @ISCO_UNID_CNTB      
 and    CO_BANC = @ISCO_BANC                 
 and    NU_CNTA_BANC = @ISNU_CNTA_BANC                  
 and    AA_BNCO = @ISAA_BNCO                
 and    MM_BNCO = @ISMM_BNCO                 
 and    TI_MOVI_BANC = @ISTI_MOVI_BANC                
 and    NU_COMP_BANC = @ISNU_COMP_BANC                 
         
 /* Sumo todos los documentos de clientes */                
         
 Select @VNIM_TOTA_CLIE = Isnull(Sum(Isnull(IM_DETA_NEGA,0)),0)             From TDMOVI_BANC                
 Where CO_EMPR = @ISCO_EMPR                
 and   CO_UNID_CONC = @ISCO_UNID_CNTB      
 And   CO_BANC = @ISCO_BANC                
 And   NU_CNTA_BANC = @ISNU_CNTA_BANC                
 And   AA_BNCO = @ISAA_BNCO                  
 And   MM_BNCO = @ISMM_BNCO                
 And   TI_MOVI_BANC = @ISTI_MOVI_BANC                
 And   NU_COMP_BANC = @ISNU_COMP_BANC        
 And  TI_ENTI = 'C'                
 And RTRIM(ISNULL(CO_CNTA_EMPR, '')) = ''                
         
 /* Sumo todos los documentos de proveedores */                
         
 Select @VNIM_TOTA_PROV = Isnull(Sum(Isnull(IM_DETA_NEGA,0)),0)                
 From TDMOVI_BANC                
 Where CO_EMPR = @ISCO_EMPR                
 and   CO_UNID_CONC = @ISCO_UNID_CNTB      
 And   CO_BANC = @ISCO_BANC                
 And   NU_CNTA_BANC = @ISNU_CNTA_BANC                
 And   AA_BNCO = @ISAA_BNCO                
 And   MM_BNCO = @ISMM_BNCO                
 And   TI_MOVI_BANC = @ISTI_MOVI_BANC                
 And   NU_COMP_BANC = @ISNU_COMP_BANC                
 And   TI_ENTI = 'P'                
 And RTRIM(ISNULL(CO_CNTA_EMPR, '')) = ''                
         
 Select  @VNIM_TOTA_DIST = Isnull(Sum(Isnull(PatIndex(TI_MOVI_OPER, 'C')* IM_DETA - PatIndex(TI_MOVI_OPER, 'A')*      
IM_DETA,0)),0)                 
 From  TDMOVI_BANC                
 Where CO_EMPR = @ISCO_EMPR                
 and CO_UNID_CONC = @ISCO_UNID_CNTB      
 And CO_BANC = @ISCO_BANC                
 And NU_CNTA_BANC = @ISNU_CNTA_BANC                
 And AA_BNCO = @ISAA_BNCO                
 And MM_BNCO = @ISMM_BNCO                
 And TI_MOVI_BANC = @ISTI_MOVI_BANC                
 And NU_COMP_BANC = @ISNU_COMP_BANC                
 And RTRIM(ISNULL(CO_CNTA_EMPR, '')) != ''                
         
 Select  @VNIM_TOTA = @VNIM_TOTA_PROV + @VNIM_TOTA_CLIE + ISNULL(@VNIM_TOTA_DIST,0)                
         
 Update TCMOVI_BANC                
 Set IM_MOVI = Round(@VNIM_TOTA,2),                
 CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()                         
 Where CO_EMPR = @ISCO_EMPR                 
 And   CO_UNID_CONC = @ISCO_UNID_CNTB      
 And   CO_BANC = @ISCO_BANC                 
 And   NU_CNTA_BANC = @ISNU_CNTA_BANC                 
 And   AA_BNCO = @ISAA_BNCO                
 And   MM_BNCO = @ISMM_BNCO                 
 And   TI_MOVI_BANC = @ISTI_MOVI_BANC                 
 And   NU_COMP_BANC = @ISNU_COMP_BANC                 
         
 If @@error <> 0                
 Begin                
  Rollback Tran SP_TDMOVI_BANC_I01               
  Return                
 End                  
         
 Select @VNNU_CONT = IsNull(Count (CO_EMPR),0) From #TWRETE_BANC              
         
 /* PARA COMPROBANTES DE RETENCION*/                
         
 IF @ISTI_DOCU_ENTI = @VSTI_DOCU_RETE And @VNNU_CONT != 0              
 BEGIN                
         
  Select  @VSNO_ENTI = NO_AUXI, @VSNU_RUCC = NU_RUCS                
  From  TMAUXI_EMPR                 
  Where  CO_EMPR = @ISCO_EMPR                
  And TI_AUXI_EMPR = @ISTI_ENTI                
  And CO_AUXI_EMPR = @ISCO_ENTI                
          
  Select  @VSNU_CHEQ = ISNULL(NU_CHEQ, ''),                 
  @VSNU_DOCU_BANC = ISNULL(NU_DOCU_BANC, '')                
  From  TCMOVI_BANC                
  Where  CO_EMPR = @ISCO_EMPR                 
  And CO_UNID_CONC = @ISCO_UNID_CNTB      
  And CO_BANC = @ISCO_BANC                 
  And NU_CNTA_BANC = @ISNU_CNTA_BANC                 
And AA_BNCO = @ISAA_BNCO                
  And MM_BNCO = @ISMM_BNCO                 
  And TI_MOVI_BANC = @ISTI_MOVI_BANC                 
  And NU_COMP_BANC = @ISNU_COMP_BANC                 
         
         
  Select @VSNU_COMP_BACA = Case Len(Rtrim(Ltrim(@VSNU_CHEQ)))                
  When 0 Then  @VSNU_DOCU_BANC                
  Else @VSNU_CHEQ                
 End                
         
  Insert Into TCCOMP_RETE                
  (CO_EMPR, NU_COMP_RETE, FE_COMP_RETE, FA_TIPO_CAMB, CO_PROV, NO_PROV, NU_RUCC, CO_MONE,                
  CO_BANC, NU_CNTA_BANC, AA_BACA, MM_BACA, NU_COMP_BACA, NU_DOCU, TI_SITU, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI,      
FE_USUA_MODI)                
  Values (@ISCO_EMPR, @ISNU_DOCU_ENTI, @IDFE_DOCU, @INFA_TIPO_CAMB, @ISCO_ENTI, @VSNO_ENTI, @VSNU_RUCC, @ISCO_MONE_DOCU,      
@ISCO_BANC, @ISNU_CNTA_BANC,                
  @ISAA_BNCO, @ISMM_BNCO, @ISNU_COMP_BANC, @VSNU_COMP_BACA, 'ACT', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())       
              
          
  If @@error <> 0                
  Begin                
   Rollback Tran SP_TDMOVI_BANC_I01                
   Return                
 End                  
         
 Insert Into TDCOMP_RETE                
 (CO_EMPR, NU_COMP_RETE,NU_SECU, TI_DOCU, NU_DOCU, FE_EMIS,         
  IM_TOTA_CONV, IM_RETE_CONV, IM_PAGO_CONV,         
  IM_COMP_PAGO,        
  CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)                
 Select  CO_EMPR, @ISNU_DOCU_ENTI, NU_SECU, TI_DOCU, NU_DOCU, FE_EMIS,         
  IM_TOTA_CONV, IM_RETE_CONV, IM_PAGO_CONV,         
  ( dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_NACI, @ISCO_MONE, @VDFE_OPER, IM_RETE_CONV, @VSTI_CAMB, @VSTI_ORIG, 'S',      
@VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB) ) IM_COMP_PAGO,        
  @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE()            
 From #TWRETE_BANC        
 Where         
 CO_EMPR = @ISCO_EMPR And        
 CO_PROV = @ISCO_ENTI        
        
         
 If @@error <> 0                
 Begin                
  Rollback Tran SP_TDMOVI_BANC_I01                
  Return                
 End                
         
         
 Insert Into            
  TMDOCU_PROV(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,                 
  CO_TIPO_OPER, CO_COND_PAGO, CO_UNID_CONC, FE_VENC,                 
  FE_EMIS, FE_RECE, FE_PROG_PAGO, FE_REGI_COMP, FA_TIPO_CAMB, CO_MONE,                 
  IM_BRUT_AFEC, IM_BRUT_INAF, IM_GAFI, IM_MORA, IM_FLET,                 
  ST_AFEC_GAFI, ST_AFEC_MORA, ST_AFEC_FLET, ST_DCT1_BRAF, ST_DCT1_BRIN,                 
  ST_DCT1_GAFI, ST_DCT1_MORA, ST_DCT1_FLET, ST_DCT2_BRAF, ST_DCT2_BRIN,                 
  ST_DCT2_GAFI, ST_DCT2_MORA, ST_DCT2_FLET, PC_DCT1, IM_DCT1,                 
  PC_DCT2, IM_DCT2, PC_IMP1, IM_IMP1,                 
  PC_IMP2, IM_IMP2, PC_IMP3, IM_IMP3, IM_TOTA,                 
  IM_PAGA, CO_ESTA_DOCU, ST_CONT, TI_PROV, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)                
 Values( @ISCO_EMPR, @ISCO_ENTI, @VSTI_DOCU_RETE, @ISNU_DOCU_ENTI,                 
  @VSCO_TIPO_EGRE, @VSCO_COND_CONT, @VSCO_UNID_CONC, @IDFE_DOCU,                 
  @IDFE_DOCU, @IDFE_DOCU, @IDFE_DOCU, @IDFE_DOCU, @INFA_TIPO_CAMB, @ISCO_MONE_DOCU,                
  @INIM_DOCU, 0, 0, 0, 0,                
  'N', 'N', 'N','N', 'N',                 
  'N', 'N', 'N','N', 'N',                 
  'N', 'N', 'N', 0, 0,                 
  0, 0, 0, 0,                 
  0, 0, 0, 0, @INIM_DOCU,                
  @INIM_DOCU, 'PAG', 'N', 'J', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())            
         
 If @@error <> 0                
 Begin                
  Rollback Tran SP_TDMOVI_BANC_I01                
  Return                
 End                
         
 Delete #TWRETE_BANC        
 Where         
 CO_EMPR = @ISCO_EMPR And        
 CO_PROV = @ISCO_ENTI        
        
         
 END                
 /* Fin para Comprobantes de Retenci«n */                 
                
commit Tran SP_TDMOVI_BANC_I01                
                
/*------------------------ Fin ------------------------------*/


GO
